package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.ModuleVolumeInfo;
import com.ruoyi.system.domain.comment.EngComment;
import com.ruoyi.system.domain.comment.VolumeComment;
import org.apache.ibatis.annotations.Param;

/**
 * 案卷表Mapper接口
 * 
 * @author ruoyi
 * @date 2023-06-11
 */
public interface ModuleVolumeInfoMapper {
        /**
         * 查询案卷表
         * 
         * @param id 案卷表主键
         * @return 案卷表
         */
        public ModuleVolumeInfo selectModuleVolumeInfoById(String id);

        /**
         * 查询案卷表列表
         * 
         * @param moduleVolumeInfo 案卷表
         * @return 案卷表集合
         */
        public List<ModuleVolumeInfo> selectModuleVolumeInfoList(ModuleVolumeInfo moduleVolumeInfo);

        /**
         * 查询案卷注释信息列表
         *
         * @return 案卷信息集合
         */
        public List<VolumeComment> selectModuleVolumeComInfoList();

        /**
         * 查询案卷表列表
         *
         * @param id 工程表主键
         * @return 结果
         */
        public List<ModuleVolumeInfo> getRelaModuleVolumeInfoById(String id);

        /**
         * 新增案卷表
         * 
         * @param moduleVolumeInfo 案卷表
         * @return 结果
         */
        public int insertModuleVolumeInfo(ModuleVolumeInfo moduleVolumeInfo);

        /**
         * 修改案卷表
         * 
         * @param moduleVolumeInfo 案卷表
         * @return 结果
         */
        public int updateModuleVolumeInfo(ModuleVolumeInfo moduleVolumeInfo);

        /**
         * 删除案卷表
         * 
         * @param id 案卷表主键
         * @return 结果
         */
        public int deleteModuleVolumeInfoById(String id);

        /**
         * 批量删除案卷表
         * 
         * @param ids 需要删除的数据主键集合
         * @return 结果
         */
        public int deleteModuleVolumeInfoByIds(String[] ids);

        /**
         * selectModuleVolumeInfoByClassIds
         *
         * @param classId 分类Id
         * @return 结果
         */
        public List<ModuleVolumeInfo> selectModuleVolumeInfoByClassIds(@Param("classIds") Long[] classIds,
                        @Param("vname") String vname);

        // public List<ModuleVolumeInfo> selectModuleVolumeInfoByTopNodes(String[]
        // topnodes);

        public List<ModuleVolumeInfo> selectModuleVolumeInfoByTopNodes(@Param("topnodes") String[] topnodes,
                        @Param("vname") String vname);

        /**
         * Find row count in class
         * 
         * @return
         */
        public int findMaxRowInClass(String topnode);

        /**
         * Find max index id
         * 
         * @return max index id
         */
        public List<ModuleVolumeInfo> findMaxIndexId();

        /**
         * Find max LuiShui id
         *
         * @return max LuiShui id
         */
        public int findMaxLuiShui();
}
